home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / make / icmake-6.000 / icmake-6 / icmake / comp / mathass.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-08  |  641 b   |  31 lines

  1. /*
  2.                              M A T H A S S . C
  3. */
  4.  
  5. #include "iccomp.h"
  6.  
  7. ESTRUC_ *math_ass(lval, rval, fun, opstr)
  8.     ESTRUC_
  9.         *lval,
  10.         *rval,
  11.         *(*fun) ARG((ESTRUC_ *, ESTRUC_ *));
  12.     char
  13.         *opstr;
  14. {
  15.     register E_TYPE_
  16.         ltype;
  17.     register unsigned
  18.         evalue;
  19.  
  20.     ltype = lval->type;
  21.     evalue = lval->evalue;
  22.  
  23.     fun(lval, rval);                        /* perform operation */
  24.  
  25.     rval->type = ltype;                     /* restore ltype/value */
  26.     rval->evalue = evalue;
  27.     rval->codelen = 0;
  28.     rval->code = NULL;
  29.  
  30.     return (assignment(rval, lval, opstr)); /* perform assignment */
  31. }